#ifndef METAFILE_H_
#define METAFILE_H_

#include <string>
#include <cstring>


namespace Validator
{


//! MetaFile trieda. 
/*!
 	Obsahuje data o subore ktory je sucastou schemy na validaciu obsahu
	archivacneho suboru 
*/
class MetaFile
{
	public:
		//! Constructor
		/*!
			Zakladny konstruktor triedy, prazdny meta subor
		*/
		MetaFile(void);

		//! Constructor
		/*!
			Pretazeny konstruktor triedy
			\param theFileName nazov suboru
			\param theFileType typ suboru maximalnej dlzky 3 znaky, ak sa zada dlhsi typ
                   tak ten bude redukovany na dlzku 3
			\param theDoExtract urci ci sa dany subor ma extrahovat alebo ne
		*/
		MetaFile(std::string theFileName,const char* theFileType,bool theDoExtract);
		~MetaFile(void);

		//! GetName
		/*!
			Sluzi na ziskanie mena suboru 
			\return meno suboru
		*/
		std::string GetName();

		//! GetType
		/*!
			Sluzi na ziskanie typu suboru ak nejaky bol urceny
			\return typ suboru alebo prazdny retazec ak nebol udany typ
		*/
		std::string GetType();

		//! DoExtract
		/*!
			Sluzi na urcenie ci sa subor ma extrahovat alebo nie
			\return true ak ano, false ak nie
		*/
		bool DoExtract();

	private:
		std::string myFileName;
		char myType[4];
		bool myExtract;
		void Init();
};

}

#endif

